#ifndef DYN_ODE_RK4_H
#define DYN_ODE_RK4_H

#include "dyn_ode.h"

/*! \brief Implementation of the RK4
 * integration routine. Fixed stepsize.
 *
 * Implementation of the fourth-order
 * Runge-Kutta method with fixed stepsize.
 */

class RK4 : public ODE
{
public:
    /*! The constructor defines the variables
     * we need to setup the integrator.
     */
    RK4(MultiFunctor& func,
        colvec _initCond,
        double _start,
        double _end,
        double _initStepsize);

    /*! @name Inherited virtual functions.
     * Implementation of the pure virtual functions
     * of the base class.
     */
    //@{
    colvec next(colvec previousStep);
    //@}
};

#endif // DYN_ODE_RK4_H
